iT邦幫忙

2023 iThome 鐵人賽

DAY 14
1

RequestMapping

@RequestMapping@GetMapping@PostMapping 都是 Spring 框架 Controller 內用於處理 HTTP 請求的注解,但它們在用法上有一些區別:

@RequestMapping

  • @RequestMapping 是一個通用的注解,它可以用於處理各種類型的 HTTP 請求,包括 GET、POST、PUT、DELETE 等。
  • 可以用於類級別(Controller 類)和方法級別(處理請求的方法)。
  • 在方法級別使用時,需要指定請求的 HTTP 方法,例如:
@Controller
public class HelloController {

    @RequestMapping(value = "/endpoint", method = RequestMethod.GET)
    public ModelAndView helloWorld() {
    
        ModelAndView modelAndView = new ModelAndView("helloView");
        return modelAndView; 
    }
}
  • 在類級別使用時,可以定義通用的 URL 前綴,然後在方法級別進一步細化。

@GetMapping

  • @GetMapping 是一個特定於 GET 請求的簡化版本的 @RequestMapping
  • 它僅處理 GET 請求,不需要額外指定 HTTP 方法,因此更簡潔和直觀。
  • 通常用於獲取(檢索)來源的操作。

@PostMapping

  • @PostMapping 是一個特定於 POST 請求的簡化版本的 @RequestMapping
  • 它僅處理 POST 請求,不需要額外指定 HTTP 方法。
  • 通常用於建立新資源的操作,例如提交表單時將資料保存到伺服器。

總之,這些注解之間的主要區別在於它們處理的 HTTP 請求類型。@RequestMapping 是最通用的,可以處理所有類型的請求,而 @GetMapping@PostMapping 則是對 GET 和 POST 請求的簡化版本,使程式碼更加清晰和具有語義。我們可以根據不同需求選擇適當的注解,以便清晰地定義和處理不同類型的請求。

參考資料

https://www.baeldung.com/spring-new-requestmapping-shortcuts
https://www.javaguides.net/2018/11/spring-getmapping-postmapping-putmapping-deletemapping-patchmapping.html


上一篇
Day 13 : RestController 與 Controller
下一篇
Day 15 : ModelAttribute、ResponseBody、 RequestBody 和 RequestParam
系列文
Spring、Spirng MVC 及 Spring Boot 自主學習旅途!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言